草庐IT

Java HotSpot 枚举开销

全部标签

c# - C# 中的枚举类型约束

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Anyoneknowagoodworkaroundforthelackofanenumgenericconstraint?C#不允许对Enum进行类型约束的原因是什么?我确信这种疯狂背后有一种方法,但我想了解为什么这是不可能的。以下是我希望(理论上)能够做到的事情。publicstaticTGetEnum(thisstringdescription)whereT:Enum{...}

c# - 为什么多维数组的枚举值不等于自身?

考虑:usingSystem;publicclassTest{enumState:sbyte{OK=0,BUG=-1}staticvoidMain(string[]args){vars=newState[1,1];s[0,0]=State.BUG;Statea=s[0,0];Console.WriteLine(a==s[0,0]);//False}}这怎么解释?在x86JIT中运行时,它出现在VisualStudio2015的调试版本中。发布构建或在x64JIT中运行按预期打印True。从命令行重现:cscTest.cs/platform:x86/debug(/debug:pdbonl

c# - 为什么多维数组的枚举值不等于自身?

考虑:usingSystem;publicclassTest{enumState:sbyte{OK=0,BUG=-1}staticvoidMain(string[]args){vars=newState[1,1];s[0,0]=State.BUG;Statea=s[0,0];Console.WriteLine(a==s[0,0]);//False}}这怎么解释?在x86JIT中运行时,它出现在VisualStudio2015的调试版本中。发布构建或在x64JIT中运行按预期打印True。从命令行重现:cscTest.cs/platform:x86/debug(/debug:pdbonl

c# - 立即返回所有具有 yield return 的枚举;无需循环

我有以下函数来获取卡片的验证错误。我的问题与处理GetErrors有关。两种方法具有相同的返回类型IEnumerable.privatestaticIEnumerableGetErrors(Cardcard){varerrors=GetMoreErrors(card);foreach(vareinerrors)yieldreturne;//furtheryieldreturnsformorevalidationerrors}是否可以返回GetMoreErrors中的所有错误无需通过它们进行枚举? 最佳答案 这是F#支持的yield!

c# - 立即返回所有具有 yield return 的枚举;无需循环

我有以下函数来获取卡片的验证错误。我的问题与处理GetErrors有关。两种方法具有相同的返回类型IEnumerable.privatestaticIEnumerableGetErrors(Cardcard){varerrors=GetMoreErrors(card);foreach(vareinerrors)yieldreturne;//furtheryieldreturnsformorevalidationerrors}是否可以返回GetMoreErrors中的所有错误无需通过它们进行枚举? 最佳答案 这是F#支持的yield!

c# - 枚举命名约定 - 复数

尽管在C#namingconventionforenumandmatchingproperty上阅读了类似但不完全是我想要的内容,但我还是在问这个问题我发现我倾向于以复数命名枚举,然后将它们作为单数“使用”,例如:publicenumEntityTypes{Type1,Type2}publicclassSomeClass{/*somecodes*/publicEntityTypesEntityType{get;set;}}当然可以,这是我的风格,但是有人能发现这种约定的潜在问题吗?不过,我确实有一个“丑陋”的名字,其中包含“状态”一词:publicenumOrderStatuses{P

c# - 枚举命名约定 - 复数

尽管在C#namingconventionforenumandmatchingproperty上阅读了类似但不完全是我想要的内容,但我还是在问这个问题我发现我倾向于以复数命名枚举,然后将它们作为单数“使用”,例如:publicenumEntityTypes{Type1,Type2}publicclassSomeClass{/*somecodes*/publicEntityTypesEntityType{get;set;}}当然可以,这是我的风格,但是有人能发现这种约定的潜在问题吗?不过,我确实有一个“丑陋”的名字,其中包含“状态”一词:publicenumOrderStatuses{P

c# - 使用用户友好的字符串枚举 ToString

我的枚举包含以下值:privateenumPublishStatusses{NotCompleted,Completed,Error};不过,我希望能够以用户友好的方式输出这些值。我不需要能够再次从字符串转到值。 最佳答案 我使用Description来自System.ComponentModel命名空间的属性。简单地装饰枚举:privateenumPublishStatusValue{[Description("NotCompleted")]NotCompleted,Completed,Error};然后使用此代码检索它:publ

c# - 使用用户友好的字符串枚举 ToString

我的枚举包含以下值:privateenumPublishStatusses{NotCompleted,Completed,Error};不过,我希望能够以用户友好的方式输出这些值。我不需要能够再次从字符串转到值。 最佳答案 我使用Description来自System.ComponentModel命名空间的属性。简单地装饰枚举:privateenumPublishStatusValue{[Description("NotCompleted")]NotCompleted,Completed,Error};然后使用此代码检索它:publ

c# - 获取枚举值的属性

我想知道是否可以获取enum值的属性而不是enum本身的属性?例如,假设我有以下enum:usingSystem.ComponentModel;//forDescriptionAttributeenumFunkyAttributesEnum{[Description("NameWithSpaces1")]NameWithoutSpaces1,[Description("NameWithSpaces2")]NameWithoutSpaces2}我想要的是给定枚举类型,生成枚举字符串值的二元组及其描述。值(value)很简单:Arrayvalues=System.Enum.GetValue